package com.yunxi.sto.service;

import com.github.pagehelper.PageInfo;
import com.yunxi.hubToBiz.pojo.HubProduceTracePlanVO;
import com.yunxi.sto.pojo.*;
import java.lang.reflect.InvocationTargetException;
import java.util.List;

/**
 * <p>
 * 车辆入库计划 服务类
 * </p>
 *
 * @author caoYong
 * @since 2019-05-14
 */
public interface StoStockInPlanDubboService {

    StoStockInPlanVO getById(String id)throws Exception;

    void complete(StoStockScanVO stoStockScanVO) throws Exception;

    void saveAndUpdate(StoStockInPlanVO stoStockInPlanVO) throws Exception;

    void delAndReset(List<String> list, Integer isDel,String userId) throws Exception;

    void addStockInPlan(HubProduceTracePlanVO produceTracePlanVO)throws Exception;

    PageInfo<StoStockInPlanResponseVO> findPageByVO(StoStockInPlanVO stoStockInPlanVO, Integer pageNum, Integer pageSize) throws InvocationTargetException, IllegalAccessException;

    PageInfo<StoStockInPlanLateVO> lateStockInPlan(StoStockInPlanLateVO stoStockInPlanLateVO,Integer pageNum, Integer pageSize) throws Exception;

    List<StoStockInPlanResponseVO> export(StoStockInPlanVO stoStockInPlanVO) throws Exception;

    String bindVehicleRfid(StoStockScanVO stoStockScanVO)throws Exception;

    void setDriver(StoStockInPlanDriverVO stoStockInPlanDriverVO)throws Exception;

    void beginStockIn(StoStockScanVO stoStockScanVO)throws Exception;

    List<StoStockInOutReportListVO> stockInOutCount(String rfidNo)throws Exception;

    /**
     * 通过vin码查询入库计划
     * @param vin
     * @return
     * @throws Exception
     */
    List<StoStockInPlanVO> planListByVin(String vin,String rfid)throws Exception;

    List<StoStockInPlanVO> rfidPlan(String rfid,String partnerCode)throws Exception;

    void returnIn(StoStockReturnInVO stoStockReturnInVO)throws Exception;

    void imoprtPlan(List<StoStockInPlanImportVO> list)throws Exception;

    void inCharge(StoStockScanVO stoStockScanVO)throws Exception;

    void outCharge(StoStockScanVO stoStockScanVO)throws Exception;

}
